#ifndef prs_FrmFunc_H
#define prs_FrmFunc_H

#include "prs_FrmNodes.h"
#include "prs_Func.h"

namespace prs { 

///////////////////////////////////////////////////////////////////////////////

extern bool FrmFunc_SetId(TAttrId &AttrId,svl::TString Id,svl::TString &OutError);

///////////////////////////////////////////////////////////////////////////////

struct TFuncNewNodeIntoAttrOldChildren : public TFuncNewNodeIntoAttr
{
  static snt::TFVoid &New(svl::TVariant &VParentNode,TAttrNode &NodeType,bool SetParent = true) {
    return TFuncNewNodeIntoAttr::New(
      VParentNode,
      attrName_OldChildren,
      NodeType,
      SetParent
    );
  }
};

/***************
struct TFVoidNewNode : public svl::TPointer
{
  TFVoidNewNode() { nodeType = NULL; vThis = this;}
 ~TFVoidNewNode() { delete nodeType;} 
  //
  static snt::TFVoid &New(svl::TVariant &VParentNode,TNode &NodeType,bool SetParent = true);

private:
  static void Func(snt::TParams &Params);
  //
  svl::TVariant *vParentNode,vThis;
  TNode *nodeType;
  bool setParent;
};
************************/

///////////////////////////////////////////////////////////////////////////////
}

#endif
